{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.4.2 过拟合问题\n",
    "**过拟合：当一个模型过于复杂之后，它可以很好地“记忆”每一个训练数据中随机噪音的部分而忘记了要去“学习”训练数据中通用的趋势。**\n",
    "<p align='center'>\n",
    "    <img src=images/图4.14.JPG>\n",
    "</p>\n",
    "\n",
    "为了避免过拟合，一个非常常用的方法是**“正则化(regularization)”，其思想就是在损失函数中加入刻画模型复杂程度的指标。**假设用于刻画模型在训练数据上表现得损失函数使$J(\\theta)$，那么**在优化时不是直接优化$J(\\theta)$，而是优化$J(\\theta) + \\lambda R(w)$**，其中：\n",
    "- $R(w)$刻画的是模型得复杂度；\n",
    "- $\\lambda$表示模型复杂度损失在总损失中得比例；\n",
    "- $\\theta$表示的是整个神经网络中得所有参数，包括边上的权重和偏执项b，一般来说模型复杂度只有权重$w$决定。\n",
    "\n",
    "常用的刻画模型复杂度的函数$R(w)$有两种：\n",
    "- **L1正则**：$R(w) = ||w||_1 = \\sum_i{|w_i|}$\n",
    "- **L2正则**：$R(w) = ||w||_2^2 = \\sum_i{|w_i^2|}$\n",
    "- 实践中也可同时使用：$R(w) = \\sum_i{\\alpha|w_i| + (1 - \\alpha)w_i^2}$\n",
    "\n",
    "两种正则的思想都是希望通过限制权重的大小，使得模型不能任意拟合训练数据中的噪音。但两种方法有着很大的**区别**：\n",
    "- L1正则会让参数变得稀疏（即有更多的参数变为0），这样可以达到特征选取的功能，另外计算公式不可导；\n",
    "- L2正则则不会让参数变得稀疏（原因是参数很小时如0.001，其平方项就基本可以忽略于是模型不会进一步调整参数为0），其计算公式可导，优化更简洁。\n",
    "\n",
    "一个带L2正则化的损失函数的例子：`loss = tf.reduce_mean(tf.square(y_ - y)) + tf.contrib.layers.l2_regularizer(lambda)(w)`，运行样例如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5.0\n",
      "7.5\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "\n",
    "weights = tf.constant([[1.0, -2.0], [-3.0, 4.0]])\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    # 输出为（|1| + |-2| + |-3| + |4|） * 0.5 = 5，其中0.5为正则化项的权重\n",
    "    print(sess.run(tf.contrib.layers.l1_regularizer(.5)(weights)))\n",
    "    # 输出为（1^2 + (-2)^2 + (-3)^2 + 4^2/2） * 0.5 = 7.5，TF会将L2的正则化损失值除以2使得求导更简洁\n",
    "    print(sess.run(tf.contrib.layers.l2_regularizer(.5)(weights)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在简单的神经网络中，这样的方式就可以很好地计算正则化带来的损失函数了。**但当神经网络的参数增加后，这样的方式会导致损失函数loss的定义很长，可读性差且容易出错。更主要的是，当网络结构复杂之后定义网络结构的部分和计算损失函数的部分可能不在同一函数中，这样通过变量这种方式计算损失函数就不方便了**。为解决这个问题，可以适用TensorFlow中的集合（Collection），之前在3.1节中已经介绍过，它可以在一个计算图中保存一组实体（比如张量），参见下面这个例子：\n",
    "\n",
    "#### 1. 生成模拟数据集。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "\n",
    "data = []\n",
    "label = []\n",
    "np.random.seed(0)\n",
    "\n",
    "# 以原点为圆心，半径为1的圆把散点划分成红蓝两部分，并加入随机噪音。\n",
    "for i in range(150):\n",
    "    x1 = np.random.uniform(-1, 1)\n",
    "    x2 = np.random.uniform(0, 2)\n",
    "    data.append([np.random.normal(x1, 0.1), np.random.normal(x2, 0.1)])\n",
    "    if x1**2 + x2**2 <= 1: \n",
    "        label.append(0)\n",
    "    else:\n",
    "        label.append(1)\n",
    "\n",
    "data = np.hstack(data).reshape(-1, 2)\n",
    "label = np.hstack(label).reshape(-1, 1)\n",
    "plt.scatter(data[:,0], data[:,1], c=label.flatten(),\n",
    "           cmap=\"RdBu\", vmin=-.2, vmax=1.2, edgecolor=\"white\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. 定义一个获取权重，并自动加入正则项到损失的函数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_weight(shape, lambda1):\n",
    "    w = tf.Variable(tf.random_normal(shape), dtype=tf.float32)\n",
    "    # tf.add_to_collection将这个新生成的L2正则项损失项加入集合\n",
    "    tf.add_to_collection('losses', tf.contrib.layers.l2_regularizer(lambda1)(w))\n",
    "    return w"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3. 定义神经网络。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = tf.placeholder(tf.float32, shape=(None, 2))\n",
    "y_ = tf.placeholder(tf.float32, shape=(None, 1))\n",
    "sample_size = len(data)\n",
    "\n",
    "# 每层节点的个数\n",
    "layer_dimension = [2, 10, 5, 3, 1]\n",
    "\n",
    "n_layers = len(layer_dimension)\n",
    "\n",
    "# 这个变量维护前向传播时最深层的节点，开始的时候是输入层\n",
    "cur_layer = x\n",
    "in_dimension = layer_dimension[0]\n",
    "\n",
    "# 循环生成网络结构\n",
    "for i in range(1, n_layers):\n",
    "    out_dimension = layer_dimension[i]\n",
    "    weight = get_weight([in_dimension, out_dimension], 0.003)\n",
    "    bias = tf.Variable(tf.constant(0.1, shape=[out_dimension]))\n",
    "    cur_layer = tf.nn.elu(tf.matmul(cur_layer, weight) + bias)\n",
    "    in_dimension = layer_dimension[i]\n",
    "\n",
    "y = cur_layer\n",
    "\n",
    "# 损失函数的定义\n",
    "mse_loss = tf.reduce_sum(tf.pow(y_ - y, 2)) / sample_size\n",
    "tf.add_to_collection('losses', mse_loss)\n",
    "# tf.get_collection返回一个列表，这个列表是所有这个集合中的元素，将它们加起来就是最终的损失函数\n",
    "loss = tf.add_n(tf.get_collection('losses'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4. 训练不带正则项的损失函数mse_loss。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 0 steps, mse_loss: 16.743280\n",
      "After 2000 steps, mse_loss: 0.068184\n",
      "After 4000 steps, mse_loss: 0.053223\n",
      "After 6000 steps, mse_loss: 0.042781\n",
      "After 8000 steps, mse_loss: 0.027724\n",
      "After 10000 steps, mse_loss: 0.020303\n",
      "After 12000 steps, mse_loss: 0.017723\n",
      "After 14000 steps, mse_loss: 0.015720\n",
      "After 16000 steps, mse_loss: 0.014346\n",
      "After 18000 steps, mse_loss: 0.013058\n",
      "After 20000 steps, mse_loss: 0.012400\n",
      "After 22000 steps, mse_loss: 0.011919\n",
      "After 24000 steps, mse_loss: 0.011422\n",
      "After 26000 steps, mse_loss: 0.008267\n",
      "After 28000 steps, mse_loss: 0.007951\n",
      "After 30000 steps, mse_loss: 0.007481\n",
      "After 32000 steps, mse_loss: 0.007388\n",
      "After 34000 steps, mse_loss: 0.007321\n",
      "After 36000 steps, mse_loss: 0.007272\n",
      "After 38000 steps, mse_loss: 0.007582\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 定义训练的目标函数mse_loss，训练次数及训练模型\n",
    "train_op = tf.train.AdamOptimizer(0.001).minimize(mse_loss)\n",
    "TRAINING_STEPS = 40000\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    tf.global_variables_initializer().run()\n",
    "    for i in range(TRAINING_STEPS):\n",
    "        sess.run(train_op, feed_dict={x: data, y_: label})\n",
    "        if i % 2000 == 0:\n",
    "            print(\"After %d steps, mse_loss: %f\" % (i, sess.run(mse_loss, feed_dict={x: data, y_: label})))\n",
    "\n",
    "    # 将整个区间grid，预测每点的概率，并reshape\n",
    "    xx, yy = np.mgrid[-1.2:1.2:.01, -0.2:2.2:.01]  # 生成两个grid数据，也可通过“np.linspace/np.arange+列表内涵”实现这两行功能\n",
    "    grid = np.c_[xx.ravel(), yy.ravel()]  # 将两个grid降为一维后按列拼接。ravel和flatten区别：后者返回拷贝，而前者返回视图，更改时会改变原数据\n",
    "    probs = sess.run(y, feed_dict={x:grid})\n",
    "    probs = probs.reshape(xx.shape)\n",
    "\n",
    "plt.scatter(data[:,0], data[:,1], c=label.flatten(),\n",
    "           cmap=\"RdBu\", vmin=-.2, vmax=1.2, edgecolor=\"white\")\n",
    "plt.contour(xx, yy, probs, levels=[.5], cmap=\"Greys\", vmin=0, vmax=.1) # 根据gird点的概率画出分割曲线，这里利用等高线实现，以0.5为分界线\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 5. 训练带正则项的损失函数loss。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 0 steps, loss: 2.599489\n",
      "After 2000 steps, loss: 0.107390\n",
      "After 4000 steps, loss: 0.069309\n",
      "After 6000 steps, loss: 0.057962\n",
      "After 8000 steps, loss: 0.056678\n",
      "After 10000 steps, loss: 0.056366\n",
      "After 12000 steps, loss: 0.056070\n",
      "After 14000 steps, loss: 0.055973\n",
      "After 16000 steps, loss: 0.055933\n",
      "After 18000 steps, loss: 0.055894\n",
      "After 20000 steps, loss: 0.055890\n",
      "After 22000 steps, loss: 0.055887\n",
      "After 24000 steps, loss: 0.055886\n",
      "After 26000 steps, loss: 0.055885\n",
      "After 28000 steps, loss: 0.055885\n",
      "After 30000 steps, loss: 0.055885\n",
      "After 32000 steps, loss: 0.055885\n",
      "After 34000 steps, loss: 0.055884\n",
      "After 36000 steps, loss: 0.055884\n",
      "After 38000 steps, loss: 0.055884\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 定义训练的目标函数loss，训练次数及训练模型\n",
    "train_op = tf.train.AdamOptimizer(0.001).minimize(loss)\n",
    "TRAINING_STEPS = 40000\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    tf.global_variables_initializer().run()\n",
    "    for i in range(TRAINING_STEPS):\n",
    "        sess.run(train_op, feed_dict={x: data, y_: label})\n",
    "        if i % 2000 == 0:\n",
    "            print(\"After %d steps, loss: %f\" % (i, sess.run(loss, feed_dict={x: data, y_: label})))\n",
    "\n",
    "    # 将整个区间grid，预测每点的概率，并reshape       \n",
    "    xx, yy = np.mgrid[-1:1:.01, 0:2:.01]\n",
    "    grid = np.c_[xx.ravel(), yy.ravel()]\n",
    "    probs = sess.run(y, feed_dict={x:grid})\n",
    "    probs = probs.reshape(xx.shape)\n",
    "\n",
    "plt.scatter(data[:,0], data[:,1], c=label.flatten(),\n",
    "           cmap=\"RdBu\", vmin=-.2, vmax=1.2, edgecolor=\"white\")\n",
    "plt.contour(xx, yy, probs, levels=[.5], cmap=\"Greys\", vmin=0, vmax=.1)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
